﻿/*----------------------------------------------------------------
//  <copyright file="ModuleInputDtoBase.cs" company="MicroCloud@151504200868">
//      Copyright © 2020-2024 MicroCloud Corporation, All rights reserved.
//  </copyright>
//  <site>https://gitee.com/chenmm123/microclouds</site>
//  <last-editor>cmm</last-editor>
//  <last-date>2022-12-02 17:44</last-date>
//----------------------------------------------------------------*/

namespace MicroCloud.Authorization.Dtos
{
    #region "模块信息输入DTO基类"
    /// <summary>
    /// 模块信息输入DTO基类
    /// </summary>
    /// <typeparam name="TModuleKey">模块编号类型</typeparam>
    public abstract class ModuleInputDtoBase<TModuleKey> : IInputDto<TModuleKey>
        where TModuleKey : struct, IEquatable<TModuleKey>
    {
        #region "属性"
        #region "获取或设置 模块编号"
        /// <summary>
        /// 获取或设置 模块编号
        /// </summary>
        [DisplayName("编号")]
        public TModuleKey Id { get; set; }
        #endregion
        #region "获取或设置 模块名称"
        /// <summary>
        /// 获取或设置 模块名称
        /// </summary>
        [Required, DisplayName("模块名称")]
        public string Name { get; set; }
        #endregion
        #region "获取或设置 模块全称"
        /// <summary>
        /// 获取或设置 模块全称
        /// </summary>
        [Required, DisplayName("模块全称")]
        public string FullName { get; set; }
        #endregion
        #region "获取或设置 备注"
        /// <summary>
        /// 获取或设置 备注
        /// </summary>
        [DisplayName("模块描述")]
        public string Remark { get; set; }
        #endregion
        #region "获取或设置 模块代码"
        /// <summary>
        /// 获取或设置 模块代码
        /// </summary>
        [Required, DisplayName("模块代码")]
        public string Code { get; set; }
        #endregion
        #region "获取或设置 模块代码全称"
        /// <summary>
        /// 获取或设置 模块代码全称
        /// </summary>
        [Required, DisplayName("模块代码全称")]
        public string FullCode { get; set; }
        #endregion
        #region "获取或设置 顺序编号"
        /// <summary>
        /// 获取或设置 顺序编号
        /// </summary>
        [DisplayName("顺序编号")]
        public decimal OrderNo { get; set; }
        #endregion
        #region "获取或设置 父模块编号"
        /// <summary>
        /// 获取或设置 父模块编号
        /// </summary>
        [DisplayName("父模块编号")]
        public TModuleKey? ParentId { get; set; }
        #endregion

        #endregion

    }
    #endregion

}
